package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface RoleDao {
    public Set<Role> findByUserId(Integer userId);

    //根据条件分页查询
    public Page<Role> selectByCondition(String queryString);

    //根据id查询角色信息
    public Role findById(Integer roleId);

    //查询所有角色信息
    public List<Role> findAll();

    //添加角色信息
    public void add(Role role);

    //添加角色与权限之间的联系
    public void setRoleAndPermission(Map<String, Integer> map);

    //添加角色与菜单之间的联系
    public void setRoleAndMenu(Map<String, Integer> map);

    //编辑角色信息
    public void edit(Role role);

    //删除角色与权限之间的联系
    public void deletePermissionAssocication(Integer id);

    //删除角色与菜单之间的联系
    public void deleteMenuAssocication(Integer id);

    //删除角色与用户之间的联系
    void deleteUserAssocication(Integer id);

    //根据role_id查询t_role_permission中间表
    public List<Integer> findPermissionIdsByRoleId(Integer roleId);

    //根据role_id查询t_role_menu中间表
    public List<Integer> findMenuIdsByRoleId(Integer roleId);

    //根据role_id查询t_user_role中间表
    List<Integer> findUserIdsByRoleId(Integer id);

   //删除角色信息
    public void deleteById(Integer id);
}
